/*
 * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
 *
 * https://www.mall4j.com/
 *
 * 未经允许，不可做商业用途！
 *
 * 版权所有，侵权必究！
 */

package com.yami.shop.bean.model;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField; // 添加这行
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

@Data
@TableName("book_new")  // 修改表名为book_new
public class Book implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 书籍/公告ID
     */
    @TableId
    private Long id;

    /**
     * 父级ID（书籍分类用）
     */
    private Long fid;

    /**
     * 店铺ID
     */
    private Long shopId;

    /**
     * 标题（书籍名/公告标题）
     */
    private String title;

    // private String desc;          // 确保有 setDesc(String desc)
    
    @TableField(exist = false) // 表示该字段不在表中
    private String categoryTitle; // 确保有 setCategoryTitle(String categoryTitle)

    /**
     * 作者（书籍专用）
     */
    private String author;

    /**
     * 内容（书籍详情/公告内容）
     */
    private String content;

    /**
     * 状态(1:显示/公布 0:隐藏/撤回)
     */
    private Integer status;

    /**
     * 是否置顶（1:是 0：否）
     */
    private Integer isTop;

    /**
     * 发布时间（兼容公告）/添加时间（书籍）
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date addTime;

    /**
     * 更新时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 以下为书籍专用字段
     */
    private String originImagePath;  // 原始图片路径
    private String image;           // 图片路径
    private Integer hits;           // 点击量
    private String grade;           // 评分等级
    private String bookDetailUrl;    // 书籍详情URL
    private Long originBookId;      // 原始书籍ID
    private String downloadUrl;     // 下载URL
    private Integer view;           // 浏览量
    
    // // private String desc;            // 描述
    // @TableField("`desc`")  // 使用@TableField注解指定列名
    // private String description;  // 改为description

    // private Integer order;          // 排序
    @TableField("`order`") // 使用@TableField注解指定列名
    private Integer sortOrder;  // 改为sortOrder

    private Integer recomm;         // 推荐（可替代isTop功能）

    /**
     * 获取实际的发布时间（兼容book_new的add_time字段）
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getActualUpdateTime() {
        return addTime != null ? addTime : updateTime;
    }

    /**
     * 判断是否是置顶（兼容recomm字段）
     */
    public boolean isTop() {
        return isTop != null && isTop == 1 || recomm != null && recomm == 1;
    }
}

